package flex.cc.basicinformation.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import flex.cc.base.dto.LoginAuthDto;
import flex.cc.basicinformation.entity.ValueAddedServiceProviderEntity;
import flex.cc.basicinformation.vo.ValueAddedServiceProviderVo;

import java.util.List;
import java.util.Map;


/**
 * @author wkangle
 * @className ValueAddedServiceProviderDao
 * @description 增值服务服务商接口配置信息dao【2.2-服务包配置需求】
 * @time 2022-02-24 14:57:05
 */
public interface ValueAddedServiceProviderService extends IService<ValueAddedServiceProviderEntity> {


    /**
     * @description 查询增值服务服务商
     * @param vo 查询参数
     * @return
     * @author wkangle
     * @time 2022/02/25 0025 13:48
     * @exception/throws
    */
    IPage<ValueAddedServiceProviderVo> queryListWithPage(ValueAddedServiceProviderVo vo);

    /**
     * @param params 查询参数
     * @return
     * @description 根据参数查询增值服务服务商接口配置信息实体【2.2-服务包配置需求】
     * @author wkangle
     * @time 2022-02-24 14:57:01
     * @exception/throws
     */
    ValueAddedServiceProviderEntity getOneByParams(Map<String, Object> params);

    /**
     * @param id 增值服务商主键
     * @param status
     * @return
     * @description 修改增值服务商状态【2.2-服务包配置需求】
     * @author wkangle
     * @time 2022-02-25 13:38:47
     * @exception/throws
     */
    Map<String, String> switchStatus(Long id, String status);

    /**
     * @description 新增/编辑增值服务商，及增值服务商接口配置信息【2.2-服务包配置需求】
     * @param loginAuthDto 当前操作人
     * @param vo 增值服务商信息
     * @return
     * @author wkangle
     * @time 2022/02/25 0025 17:03
     * @exception/throws
     */
    Map<String, String> saveValueAddedServiceProvider(LoginAuthDto loginAuthDto, ValueAddedServiceProviderVo vo);

    /**
     * @description 根据增值服务商主键id查询一个，用于修改回显
     * @param id 增值服务商主键id
     * @return
     * @author wkangle
     * @time 2022/02/28 0028 10:28
     * @exception/throws
    */
    ValueAddedServiceProviderVo queryOne(Long id);

    /**
     * @description 校验增值服务商名称是否重复
     * @param serviceName 增值服务商名称
     * @param id 主键id
     * @return
     * @author wkangle
     * @time 2022/02/28 0028 11:12
     * @exception/throws
    */
    String checkServiceName(String serviceName, String id);

    /**
     * @description 校验增值服务商标识是否重复
     * @param apiCode 增值服务商标识
     * @param id 主键id
     * @return
     * @author wkangle
     * @time 2022-03-10 09:14:18
     * @exception/throws
     */
    String checkApiCode(String apiCode, String id);

	/**
	 * @author R
	 * 2022年03月02日 10:51:16
	 * @desc 查询所有有效的服务商  新增/修改 服务包内容页面  服务商下拉列表
	 */
    List<ValueAddedServiceProviderEntity> queryValidProviderList();

    /**
	 * @author WANGCONG
	 * 2022年3月3日下午16:31:26
	 * @desc 查询所有服务商下拉列表
	 */
    List<ValueAddedServiceProviderEntity> queryProviderList();

}
